home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c37.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  56KB  |  2,457 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:MANIFEST_STRING_POOL.c_define*/
  10.  
  11.  
  12. T0* r347register(T0* a1){
  13. T0* R=NULL;
  14. T2 _x=0;
  15. r7copy((T7*)(((T0*)ms347_54944)),((T0*)ms347_454));
  16. _x=((T63*)(r70base_class((T70*)((((T171*)a1))->_start_position/*4*/))))->_id/*0*/;
  17. r2append_in(_x,((T0*)ms347_54944));
  18. r7extend((T7*)(((T0*)ms347_54944)),'\137');
  19. _x=r7hash_code((T7*)((((T171*)a1))->_to_string/*8*/));
  20. r2append_in(_x,((T0*)ms347_54944));
  21. while (!(!(r348has((T348*)(oBC347mangling_dictionary),((T0*)ms347_54944))))) {
  22. r7extend((T7*)(((T0*)ms347_54944)),'a');
  23. }
  24. R=r7twin((T7*)(((T0*)ms347_54944)));
  25. r348put((T348*)(oBC347mangling_dictionary),a1,R);
  26. return R;
  27. }
  28. /*No:MANIFEST_STRING_POOL.fz_void*/
  29. /*No:MANIFEST_STRING_POOL.define_se_ms*/
  30. /*No:MANIFEST_STRING_POOL.header*/
  31. /*No:MANIFEST_STRING_POOL.fz_se_msi*/
  32.  
  33.  
  34. void r347string_to_c_code(T0* a1,T0* a2){
  35. T2 _i=0;
  36. r7extend(((T7*)a2),'\42');
  37. _i=1;
  38. while (!((_i)>((((T7*)a1))->_count/*4*/))) {
  39. r347character_to_c_code(/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/,a2);
  40. _i=(_i)+(1);
  41. }
  42. r7extend(((T7*)a2),'\42');
  43. }
  44. /*No:MANIFEST_STRING_POOL.fz_c_no_args_procedure*/
  45. T0*oBC347mangling_dictionary=NULL;
  46. T0*oBC347body=NULL;
  47. /*No:MANIFEST_STRING_POOL.fz_t7_star*/
  48. /*No:MANIFEST_STRING_POOL.define_manifest_string_mark*/
  49.  
  50.  
  51. void r347define_manifest_string_mark_header(T2 a1){
  52. /*[IRF3.4split_c_now*/r25incr_elt_c_count((T25*)(oBC12cpp),(1960)+(1));
  53. /*]*/
  54. r7copy((T7*)(((T0*)ms347_54944)),((T0*)ms13_1776a));
  55. r7extend((T7*)(((T0*)ms347_54944)),'\40');
  56. r7append((T7*)(((T0*)ms347_54944)),((T0*)ms347_53560));
  57. r2append_in(a1,((T0*)ms347_54944));
  58. r7append((T7*)(((T0*)ms347_54944)),((T0*)ms13_4410));
  59. r25put_c_heading((T25*)(oBC12cpp),((T0*)ms347_54944));
  60. }
  61. /*No:MANIFEST_STRING_POOL.fz_12*/
  62. /*No:MANIFEST_STRING_POOL.used_for_inline*/
  63. /*No:MANIFEST_STRING_POOL.fz_14*/
  64. /*No:MANIFEST_STRING_POOL.fz_new*/
  65. /*No:MANIFEST_STRING_POOL.fz_c_void_args*/
  66. /*No:MANIFEST_STRING_POOL.falling_down*/
  67. /*No:MANIFEST_STRING_POOL.nb_ms_per_function*/
  68. /*No:MANIFEST_STRING_POOL.c_call_initialize*/
  69. /*No:MANIFEST_STRING_POOL.us_malloc*/
  70.  
  71.  
  72. void r347character_to_c_code(T3 a1,T0* a2){
  73. /*[IF*/
  74. if((a1)==('\n')){
  75. r7extend(((T7*)a2),'\134');
  76. r7extend(((T7*)a2),'n');
  77. }
  78.  else if((a1)==('\134')){
  79. r7extend(((T7*)a2),'\134');
  80. r7extend(((T7*)a2),'\134');
  81. }
  82.  else if((a1)==('\42')){
  83. r7extend(((T7*)a2),'\134');
  84. r7extend(((T7*)a2),'\42');
  85. }
  86.  else if((a1)==('\47')){
  87. r7extend(((T7*)a2),'\134');
  88. r7extend(((T7*)a2),'\47');
  89. }
  90.  else if(((((unsigned char)a1))<(32))||((122)<(((unsigned char)a1)))){
  91. r7extend(((T7*)a2),'\134');
  92. r2append_in(r2to_octal(((unsigned char)a1)),a2);
  93. r7extend(((T7*)a2),'\42');
  94. r7extend(((T7*)a2),'\42');
  95. }
  96. else{
  97. r7extend(((T7*)a2),a1);
  98. }
  99. /*FI]*/
  100. }
  101.  
  102.  
  103. T0* r347type_string(void){
  104. if(fBC12type_string==0){
  105. fBC12type_string=1;
  106. {T272*n=malloc(sizeof(*n));
  107. *n=M272;
  108. r272make(n,NULL);
  109. oBC12type_string=(T0*)n;
  110. }
  111. }
  112. return oBC12type_string;}
  113. /*No:MANIFEST_STRING_POOL.fz_manifest_string_mark*/
  114. /*No:ADDRESS_OF_POOL.c_define*/
  115.  
  116.  
  117. void r349register_for(T0* a1){
  118. T0* _rf=NULL;
  119. _rf=(((T160*)a1))->_run_feature/*12*/;
  120. /*[IF*/
  121. if(!(X326fast_has(oBC349registered,_rf))){
  122. X326add_last(oBC349registered,_rf);
  123. r350add_last((T350*)(oBC349caller_memory),a1);
  124. }
  125. /*FI]*/
  126. }
  127. T0*oBC349caller_memory=NULL;
  128. T0*oBC349registered=NULL;
  129. /*No:E_RETRY.start_position*/
  130.  
  131.  
  132. T0* r231add_comment(T231* C,T0* a1){
  133. T0* R=NULL;
  134. /*[IF*/
  135. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  136. R=(T0*)C;
  137. }
  138. /*AF*/else{
  139. {T225*n=malloc(sizeof(*n));
  140. *n=M225;
  141. r225make(n,(T0*)C,a1);
  142. R=(T0*)n;
  143. }
  144. }
  145. /*FI]*/
  146. return R;
  147. }
  148. /*No:E_RETRY.use_current*/
  149.  
  150.  
  151. void r231compile_to_c(T231* C){
  152. /*[IF*/
  153. if(r43no_check((T43*)(oBC12run_control))){
  154. X51c_assertion_flag((C)->_run_feature/*8*/);
  155. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms231_756));
  156. /*]*/
  157. }
  158. /*FI]*/
  159. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms231_10368));
  160. /*]*/
  161. }
  162.  
  163.  
  164. T0* r231to_runnable(T231* C,T0* a1){
  165. T0* R=NULL;
  166. T0* _rf=NULL;
  167. _rf=r22top_rf((T22*)(oBC12small_eiffel));
  168. /*[IF*/
  169. if(((C)->_run_feature/*8*/)==((void*)(NULL))){
  170. C->_run_feature=_rf;
  171. R=(T0*)C;
  172. }
  173.  else if(((C)->_run_feature/*8*/)==((void*)(_rf))){
  174. R=(T0*)C;
  175. }
  176. else{
  177. {T231*n=malloc(sizeof(*n));
  178. *n=M231;
  179. /*[IRF3.3make*/((((T231*)(n)))->_start_position)=((C)->_start_position/*4*/);
  180. /*]*/
  181. R=(T0*)n;
  182. }
  183. R=r231to_runnable(((T231*)R),a1);
  184. }
  185. /*FI]*/
  186. return R;
  187. }
  188. /*No:E_RETRY.is_pre_computable*/
  189. /*No:E_RETRY.collect_c_tmp*/
  190. /*No:E_RETRY.run_feature*/
  191. /*No:E_RETRY.end_mark_comment*/
  192. /*No:E_RETRY.make*/
  193. /*No:E_RETRY.afd_check*/
  194. /*No:CECIL_TARGET.static_value*/
  195.  
  196.  
  197. void r366mapping_c_target(T366* C,T0* a1){
  198. X54mapping_cast(/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*4*/))->_current_type/*4*/));
  199. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  200. T3 b1='C';
  201. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  202. }/*]*/
  203. /*]*/
  204. }
  205. /*No:CECIL_TARGET.is_static*/
  206. /*No:CECIL_TARGET.can_be_dropped*/
  207. /*No:CECIL_TARGET.is_manifest_string*/
  208. /*No:CECIL_TARGET.start_position*/
  209. /*No:CECIL_TARGET.c_simple*/
  210. /*No:CECIL_TARGET.c_declare_for_old*/
  211.  
  212.  
  213. T0* r366add_comment(T366* C,T0* a1){
  214. T0* R=NULL;
  215. /*[IF*/
  216. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  217. R=(T0*)C;
  218. }
  219. else{
  220. {T230*n=malloc(sizeof(*n));
  221. *n=M230;
  222. r230make(n,(T0*)C,a1);
  223. R=(T0*)n;
  224. }
  225. }
  226. /*FI]*/
  227. return R;
  228. }
  229.  
  230.  
  231. T2 r366to_integer(void){
  232. T2 R=0;
  233. r366error(/*(IRF4.1start_position*/NULL/*)*/,((T0*)ms13_45846));
  234. return R;
  235. }
  236. /*No:CECIL_TARGET.use_current*/
  237. /*No:CECIL_TARGET.dca_inline_argument*/
  238.  
  239.  
  240. void r366compile_to_c(T366* C){
  241. /*[IF*/
  242. if(X54is_user_expanded(r366result_type(C))){
  243. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  244. T3 b1='\52';
  245. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  246. }/*]*/
  247. /*]*/
  248. }
  249. /*FI]*/
  250. r25print_current((T25*)(oBC12cpp));
  251. }
  252. /*No:CECIL_TARGET.to_runnable*/
  253. /*No:CECIL_TARGET.isa_dca_inline_argument*/
  254. /*No:CECIL_TARGET.compile_to_c_old*/
  255. /*No:CECIL_TARGET.is_pre_computable*/
  256. /*No:CECIL_TARGET.collect_c_tmp*/
  257. /*No:CECIL_TARGET.fz_iinaiv*/
  258.  
  259.  
  260. T0* r366result_type(T366* C){
  261. T0* R=NULL;
  262. R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*4*/))->_current_type/*4*/);
  263. return R;
  264. }
  265.  
  266.  
  267. void r366error(T0* a1,T0* a2){
  268. r21add_position(a1);
  269. r21error((T21*)(oBC12eh),a2);
  270. }
  271. /*No:CECIL_TARGET.run_feature*/
  272. /*No:CECIL_TARGET.make*/
  273. /*No:CECIL_TARGET.is_current*/
  274. /*No:CECIL_TARGET.mapping_c_arg*/
  275. /*No:CECIL_TARGET.is_void*/
  276. /*No:CECIL_TARGET.afd_check*/
  277. /*No:CECIL_TARGET.is_result*/
  278. /*No:STD_ERROR.put_new_line*/
  279. /*No:STD_ERROR.flush*/
  280.  
  281.  
  282. void r35put_string(T35* C,T0* a1){
  283. T2 _i=0;
  284. _i=1;
  285. while (!((_i)>((((T7*)a1))->_count/*4*/))) {
  286. /*[IRF3.6put_character*/{T35* C1=C;
  287. T3 b1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/;
  288. putc(b1,((FILE*)(stderr)));
  289. }/*]*/
  290. _i=(_i)+(1);
  291. }
  292. }
  293. /*No:STD_ERROR.make*/
  294. /*No:STD_ERROR.put_character*/
  295.  
  296.  
  297. void r35put_integer(T35* C,T2 a1){
  298. /*[IRF3.3clear*/((((T7*)((T7*)(oBC30tmp_string))))->_count)=(0);
  299. /*]*/
  300. r2append_in(a1,oBC30tmp_string);
  301. r35put_string(C,oBC30tmp_string);
  302. }
  303.  
  304.  
  305. void r295c_mapping_function(T0* a1,T0* a2,T0* a3){
  306. /*[IF*/
  307. if(r43boost((T43*)(oBC12run_control))){
  308. r295c_mapping_external((((T384*)a1))->_base_feature/*36*/,r384arg_count(((T384*)a1)));
  309. }
  310. else{
  311. r384default_mapping_function(((T384*)a1));
  312. }
  313. /*FI]*/
  314. }
  315.  
  316.  
  317. void r295c_mapping_procedure(T0* a1,T0* a2,T0* a3){
  318. /*[IF*/
  319. if(r43boost((T43*)(oBC12run_control))){
  320. r295c_mapping_external((((T387*)a1))->_base_feature/*32*/,r387arg_count(((T387*)a1)));
  321. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
  322. /*]*/
  323. }
  324. else{
  325. r387default_mapping_procedure(((T387*)a1));
  326. }
  327. /*FI]*/
  328. }
  329. /*No:NATIVE_INLINE_WITH_CURRENT.use_current*/
  330.  
  331.  
  332. void r295c_mapping_external(T0* a1,T2 a2){
  333. T6 _tcbd=0;
  334. T6 _eruc=0;
  335. _eruc=/*(IRF4.2use_current*/(1)/*)*/;
  336. /*[IF*/
  337. if(!(_eruc)){
  338. _tcbd=r25target_cannot_be_dropped((T25*)(oBC12cpp));
  339. /*[IF*/
  340. if(_tcbd){
  341. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  342. T3 b1='\54';
  343. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  344. }/*]*/
  345. /*]*/
  346. }
  347. /*FI]*/
  348. }
  349. /*FI]*/
  350. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X289external_c_name(a1));
  351. /*]*/
  352. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  353. T3 b1='\50';
  354. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  355. }/*]*/
  356. /*]*/
  357. /*[IF*/
  358. if(_eruc){
  359. r25put_target_as_value((T25*)(oBC12cpp));
  360. }
  361. /*FI]*/
  362. /*[IF*/
  363. if((a2)>(0)){
  364. /*[IF*/
  365. if(_eruc){
  366. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  367. T3 b1='\54';
  368. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  369. }/*]*/
  370. /*]*/
  371. }
  372. /*FI]*/
  373. r25put_arguments((T25*)(oBC12cpp));
  374. }
  375. /*FI]*/
  376. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  377. T3 b1='\51';
  378. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  379. }/*]*/
  380. /*]*/
  381. /*[IF*/
  382. if((!(_eruc))&&(_tcbd)){
  383. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  384. T3 b1='\51';
  385. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  386. }/*]*/
  387. /*]*/
  388. }
  389. /*FI]*/
  390. }
  391. /*No:NATIVE_INLINE_WITH_CURRENT.need_prototype*/
  392. /*No:NATIVE_INLINE_WITH_CURRENT.body*/
  393. /*No:NATIVE_INLINE_WITH_CURRENT.fz_00*/
  394.  
  395.  
  396. void r295wrapped_external_call(T0* a1,T2 a2){
  397. T2 _i=0;
  398. r7append((T7*)(((T0*)ms288_3077376)),X289external_c_name(a1));
  399. r7extend((T7*)(((T0*)ms288_3077376)),'\50');
  400. /*[IF*/
  401. {/*AT*/r7extend((T7*)(((T0*)ms288_3077376)),'C');
  402. /*[IF*/
  403. if((a2)>(0)){
  404. r7extend((T7*)(((T0*)ms288_3077376)),'\54');
  405. }
  406. /*FI]*/
  407. }
  408. /*FI]*/
  409. _i=1;
  410. while (!((_i)>(a2))) {
  411. r7extend((T7*)(((T0*)ms288_3077376)),'a');
  412. r2append_in(_i,((T0*)ms288_3077376));
  413. _i=(_i)+(1);
  414. /*[IF*/
  415. if((_i)<=(a2)){
  416. r7extend((T7*)(((T0*)ms288_3077376)),'\54');
  417. }
  418. /*FI]*/
  419. }
  420. r7append((T7*)(((T0*)ms288_3077376)),((T0*)ms13_348));
  421. }
  422. /*No:NATIVE_INLINE_WITH_CURRENT.stupid_switch*/
  423. /*No:NATIVE_INLINE_WITH_CURRENT.fz_14*/
  424.  
  425.  
  426. void r295c_define_function(T0* a1,T0* a2,T0* a3){
  427. /*[IF*/
  428. /*AF*//*AE*/
  429. /*FI]*/
  430. /*[IF*/
  431. if(r43no_check((T43*)(oBC12run_control))){
  432. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms288_3077376)))))->_count)=(0);
  433. /*]*/
  434. r7extend((T7*)(((T0*)ms288_3077376)),'R');
  435. r7extend((T7*)(((T0*)ms288_3077376)),'\75');
  436. r295wrapped_external_call((((T384*)a1))->_base_feature/*36*/,r384arg_count(((T384*)a1)));
  437. r384c_define_with_body(((T384*)a1),((T0*)ms288_3077376));
  438. }
  439. /*FI]*/
  440. }
  441.  
  442.  
  443. void r295c_define_procedure(T0* a1,T0* a2,T0* a3){
  444. /*[IF*/
  445. /*AF*//*AE*/
  446. /*FI]*/
  447. /*[IF*/
  448. if(r43no_check((T43*)(oBC12run_control))){
  449. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms288_3077376)))))->_count)=(0);
  450. /*]*/
  451. r295wrapped_external_call((((T387*)a1))->_base_feature/*32*/,r387arg_count(((T387*)a1)));
  452. r387c_define_with_body(((T387*)a1),((T0*)ms288_3077376));
  453. }
  454. /*FI]*/
  455. }
  456. /*No:CALL_INFIX_INT_DIV.static_value*/
  457. /*No:CALL_INFIX_INT_DIV.call_proc_call_c2c*/
  458. /*No:CALL_INFIX_INT_DIV.feature_name*/
  459.  
  460.  
  461. void r135finalize(T135* C){
  462. T0* _rf=NULL;
  463. T0* _rc=NULL;
  464. _rf=(C)->_run_feature/*16*/;
  465. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  466. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  467. }
  468.  
  469.  
  470. T6 r135is_static(T135* C){
  471. T6 R=0;
  472. /*[IF*/
  473. if(X54is_integer(r135result_type(C))){
  474. /*[IF*/
  475. if((X56is_static((C)->_target/*4*/))&&(X56is_static(r135arg1(C)))){
  476. R=1;
  477. C->_static_value_mem=(X56static_value((C)->_target/*4*/))/(X56static_value(r135arg1(C)));
  478. }
  479. /*FI]*/
  480. }
  481. /*FI]*/
  482. return R;
  483. }
  484. /*No:CALL_INFIX_INT_DIV.is_manifest_string*/
  485.  
  486.  
  487. T0* r135start_position(T135* C){
  488. T0* R=NULL;
  489. R=((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  490. return R;
  491. }
  492. /*No:CALL_INFIX_INT_DIV.c_simple*/
  493.  
  494.  
  495. T0* r135add_comment(T135* C,T0* a1){
  496. T0* R=NULL;
  497. /*[IF*/
  498. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  499. R=(T0*)C;
  500. }
  501. else{
  502. {T230*n=malloc(sizeof(*n));
  503. *n=M230;
  504. r230make(n,(T0*)C,a1);
  505. R=(T0*)n;
  506. }
  507. }
  508. /*FI]*/
  509. return R;
  510. }
  511.  
  512.  
  513. T2 r135to_integer(T135* C){
  514. T2 R=0;
  515. r135error(r135start_position(C),((T0*)ms13_45846));
  516. return R;
  517. }
  518.  
  519.  
  520. T6 r135use_current(T135* C){
  521. T6 R=0;
  522. /*[IF*/
  523. {/*AT*/R=X149use_current((C)->_arguments/*8*/);
  524. }
  525. /*FI]*/
  526. /*[IF*/
  527. if(R){
  528. }
  529.  else if(X56is_current((C)->_target/*4*/)){
  530. R=X51use_current((C)->_run_feature/*16*/);
  531. }
  532. else{
  533. R=X56use_current((C)->_target/*4*/);
  534. }
  535. /*FI]*/
  536. return R;
  537. }
  538.  
  539.  
  540. T0* r135to_runnable(T135* C,T0* a1){
  541. T0* R=NULL;
  542. T0* _rf=NULL;
  543. T0* _tbee=NULL;
  544. T0* _at=NULL;
  545. T0* _tt=NULL;
  546. T0* _a=NULL;
  547. T0* _t=NULL;
  548. _t=r135runnable_expression((C)->_target/*4*/,a1);
  549. _a=r135runnable_args((C)->_arguments/*8*/,a1);
  550. _tt=X56result_type(_t);
  551. _at=X56result_type(r135arg1(C));
  552. /*[IF*/
  553. /*AF*//*AE*/
  554. /*FI]*/
  555. _rf=r135run_feature_for(C,_t,a1);
  556. /*[IF*/
  557. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  558. C->_target=_t;
  559. C->_arguments=_a;
  560. C->_run_feature=_rf;
  561. r135run_feature_match(C,a1);
  562. R=(T0*)C;
  563. }
  564.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  565. R=(T0*)C;
  566. }
  567. else{
  568. {T135*n=malloc(sizeof(*n));
  569. *n=M135;
  570. r135with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  571. R=(T0*)n;
  572. }
  573. }
  574. /*FI]*/
  575. return R;
  576. }
  577.  
  578.  
  579. void r135compile_to_c_old(T135* C){
  580. X56compile_to_c_old((C)->_target/*4*/);
  581. /*[IF*/
  582. {/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
  583. }
  584. /*FI]*/
  585. }
  586. /*No:CALL_INFIX_INT_DIV.is_pre_computable*/
  587. /*No:CALL_INFIX_INT_DIV.fz_bad_argument*/
  588.  
  589.  
  590. void r135collect_c_tmp(T135* C){
  591. /*[IF*/
  592. if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
  593. X51collect_c_tmp((C)->_run_feature/*16*/);
  594. }
  595. /*FI]*/
  596. X56collect_c_tmp((C)->_target/*4*/);
  597. /*[IF*/
  598. if(((C)->_arguments/*8*/)!=((void*)(NULL))){
  599. X149collect_c_tmp((C)->_arguments/*8*/);
  600. }
  601. /*FI]*/
  602. }
  603. /*No:CALL_INFIX_INT_DIV.fz_iinaiv*/
  604.  
  605.  
  606. T0* r135result_type(T135* C){
  607. T0* R=NULL;
  608. T0* _tla=NULL;
  609. R=X51result_type((C)->_run_feature/*16*/);
  610. /*[IF*/
  611. if(X54is_like_current(R)){
  612. R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  613. }
  614. else{
  615. _tla=R;
  616. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  617. case 258: 
  618. break;
  619. default:
  620. _tla=NULL;
  621. };/*[IF*/
  622. if((_tla)!=((void*)(NULL))){
  623. R=X54run_type(X56result_type(r135arg1(C)));
  624. }
  625. /*FI]*/
  626. }
  627. /*FI]*/
  628. return R;
  629. }
  630. /*No:CALL_INFIX_INT_DIV.static_value_mem*/
  631. /*No:CALL_INFIX_INT_DIV.run_feature*/
  632.  
  633.  
  634. T0* r135runnable_args(T0* a1,T0* a2){
  635. T0* R=NULL;
  636. R=X149to_runnable(a1,a2);
  637. /*[IF*/
  638. if((R)==((void*)(NULL))){
  639. r21add_position(X149start_position(a1));
  640. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  641. r21fatal_error((T21*)(oBC12eh),b1);
  642. }/*]*/
  643. }
  644. /*FI]*/
  645. return R;
  646. }
  647. /*No:CALL_INFIX_INT_DIV.us_slash_slash*/
  648. /*No:CALL_INFIX_INT_DIV.fz_07*/
  649. /*No:CALL_INFIX_INT_DIV.arg_count*/
  650.  
  651.  
  652. void r135with(T135* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  653. C->_target=a1;
  654. C->_feature_name=a2;
  655. C->_arguments=a3;
  656. C->_run_feature=a4;
  657. r135run_feature_match(C,a5);
  658. }
  659. /*No:CALL_INFIX_INT_DIV.is_result*/
  660. /*No:CALL_INFIX_INT_DIV.fatal_error*/
  661.  
  662.  
  663. void r135mapping_c_target(T135* C,T0* a1){
  664. T0* _actual_type=NULL;
  665. T6 _flag=0;
  666. _flag=r25call_invariant_start(a1);
  667. _actual_type=X54run_type(r135result_type(C));
  668. /*[IF*/
  669. if(X54is_reference(_actual_type)){
  670. /*[IF*/
  671. if(X54is_reference(a1)){
  672. X54mapping_cast(a1);
  673. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  674. T3 b1='\50';
  675. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  676. }/*]*/
  677. /*]*/
  678. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  679. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  680. }/*]*/
  681. /*]*/
  682. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  683. T3 b1='\51';
  684. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  685. }/*]*/
  686. /*]*/
  687. }
  688. else{
  689. X54to_expanded(_actual_type);
  690. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  691. T3 b1='\50';
  692. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  693. }/*]*/
  694. /*]*/
  695. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  696. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  697. }/*]*/
  698. /*]*/
  699. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  700. T3 b1='\51';
  701. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  702. }/*]*/
  703. /*]*/
  704. }
  705. /*FI]*/
  706. }
  707. else{
  708. /*[IF*/
  709. if(X54is_reference(a1)){
  710. X54to_reference(_actual_type);
  711. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  712. T3 b1='\50';
  713. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  714. }/*]*/
  715. /*]*/
  716. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  717. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  718. }/*]*/
  719. /*]*/
  720. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  721. T3 b1='\51';
  722. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  723. }/*]*/
  724. /*]*/
  725. }
  726. else{
  727. /*[IF*/
  728. if(X54need_c_struct(a1)){
  729. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  730. T3 b1='\46';
  731. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  732. }/*]*/
  733. /*]*/
  734. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  735. T3 b1='\50';
  736. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  737. }/*]*/
  738. /*]*/
  739. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  740. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  741. }/*]*/
  742. /*]*/
  743. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  744. T3 b1='\51';
  745. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  746. }/*]*/
  747. /*]*/
  748. }
  749. else{
  750. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  751. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  752. }/*]*/
  753. /*]*/
  754. }
  755. /*FI]*/
  756. }
  757. /*FI]*/
  758. }
  759. /*FI]*/
  760. /*[IF*/
  761. if(_flag){
  762. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  763. T3 b1='\51';
  764. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  765. }/*]*/
  766. /*]*/
  767. }
  768. /*FI]*/
  769. }
  770.  
  771.  
  772. void r135run_feature_match(T135* C,T0* a1){
  773. r135run_feature_has_result(C);
  774. X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
  775. }
  776. /*No:CALL_INFIX_INT_DIV.arguments*/
  777.  
  778.  
  779. T0* r135runnable_expression(T0* a1,T0* a2){
  780. T0* R=NULL;
  781. R=X56to_runnable(a1,a2);
  782. /*[IF*/
  783. if((R)==((void*)(NULL))){
  784. r21add_position(X56start_position(a1));
  785. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  786. r21fatal_error((T21*)(oBC12eh),b1);
  787. }/*]*/
  788. }
  789. /*FI]*/
  790. return R;
  791. }
  792. /*No:CALL_INFIX_INT_DIV.can_be_dropped*/
  793.  
  794.  
  795. void r135c_declare_for_old(T135* C){
  796. X56c_declare_for_old((C)->_target/*4*/);
  797. /*[IF*/
  798. {/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
  799. }
  800. /*FI]*/
  801. }
  802. /*No:CALL_INFIX_INT_DIV.implicit_cast*/
  803. /*No:CALL_INFIX_INT_DIV.dca_inline_argument*/
  804. /*No:CALL_INFIX_INT_DIV.compile_to_c*/
  805. /*No:CALL_INFIX_INT_DIV.isa_dca_inline_argument*/
  806.  
  807.  
  808. T0* r135arg1(T135* C){
  809. T0* R=NULL;
  810. R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
  811. return R;
  812. }
  813.  
  814.  
  815. void r135run_feature_has_result(T135* C){
  816. /*[IF*/
  817. if((X51result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  818. r21add_position(X51start_position((C)->_run_feature/*16*/));
  819. r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  820. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
  821. r21fatal_error((T21*)(oBC12eh),b1);
  822. }/*]*/
  823. }
  824. /*FI]*/
  825. }
  826.  
  827.  
  828. T0* r135run_feature_for(T135* C,T0* a1,T0* a2){
  829. T0* R=NULL;
  830. T0* _rc=NULL;
  831. _rc=X54run_class(X56result_type(a1));
  832. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
  833. return R;
  834. }
  835. /*No:CALL_INFIX_INT_DIV.target*/
  836.  
  837.  
  838. void r135error(T0* a1,T0* a2){
  839. r21add_position(a1);
  840. r21error((T21*)(oBC12eh),a2);
  841. }
  842.  
  843.  
  844. void r135make(T135* C,T0* a1,T0* a2,T0* a3){
  845. C->_target=a1;
  846. {T138*n=malloc(sizeof(*n));
  847. *n=M138;
  848. r138make(n,r135operator(),a2);
  849. C->_feature_name=(T0*)n;
  850. }
  851. {T149*n=malloc(sizeof(*n));
  852. *n=M149;
  853. /*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
  854. /*]*/
  855. C->_arguments=(T0*)n;
  856. }
  857. }
  858. /*No:CALL_INFIX_INT_DIV.is_current*/
  859.  
  860.  
  861. void r135mapping_c_arg(T135* C,T0* a1){
  862. T0* _actual_type=NULL;
  863. _actual_type=X54run_type(r135result_type(C));
  864. /*[IF*/
  865. if(X54is_reference(_actual_type)){
  866. /*[IF*/
  867. if(X54is_reference(a1)){
  868. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  869. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  870. }/*]*/
  871. /*]*/
  872. }
  873. else{
  874. X54to_expanded(_actual_type);
  875. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  876. T3 b1='\50';
  877. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  878. }/*]*/
  879. /*]*/
  880. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  881. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  882. }/*]*/
  883. /*]*/
  884. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  885. T3 b1='\51';
  886. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  887. }/*]*/
  888. /*]*/
  889. }
  890. /*FI]*/
  891. }
  892. else{
  893. /*[IF*/
  894. if(X54is_reference(a1)){
  895. X54to_reference(_actual_type);
  896. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  897. T3 b1='\50';
  898. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  899. }/*]*/
  900. /*]*/
  901. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  902. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  903. }/*]*/
  904. /*]*/
  905. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  906. T3 b1='\51';
  907. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  908. }/*]*/
  909. /*]*/
  910. }
  911. else{
  912. /*[IF*/
  913. if(X54need_c_struct(a1)){
  914. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  915. T3 b1='\46';
  916. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  917. }/*]*/
  918. /*]*/
  919. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  920. T3 b1='\50';
  921. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  922. }/*]*/
  923. /*]*/
  924. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  925. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  926. }/*]*/
  927. /*]*/
  928. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  929. T3 b1='\51';
  930. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  931. }/*]*/
  932. /*]*/
  933. }
  934. else{
  935. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
  936. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  937. }/*]*/
  938. /*]*/
  939. }
  940. /*FI]*/
  941. }
  942. /*FI]*/
  943. }
  944. /*FI]*/
  945. }
  946. /*No:CALL_INFIX_INT_DIV.is_void*/
  947.  
  948.  
  949. T0* r135operator(void){
  950. T0* R=NULL;
  951. R=((T0*)ms14_194);
  952. return R;
  953. }
  954.  
  955.  
  956. void r135afd_check(T135* C){
  957. T0* _running=NULL;
  958. T0* _rc=NULL;
  959. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  960. _running=(((T24*)_rc))->_running/*12*/;
  961. /*[IF*/
  962. if((_running)==((void*)(NULL))){
  963. r21add_position(X56start_position((C)->_target/*4*/));
  964. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  965. r7append((T7*)(oBC21explanation),b1);
  966. }/*]*/
  967. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  968. r7append((T7*)(oBC21explanation),b1);
  969. }/*]*/
  970. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  971. r7append((T7*)(oBC21explanation),b1);
  972. }/*]*/
  973. r21print_as_warning((T21*)(oBC12eh));
  974. r24set_at_run_time(((T24*)_rc));
  975. }
  976.  else if((r328count(((T328*)_running)))>(1)){
  977. r331update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  978. }
  979. /*FI]*/
  980. X56afd_check((C)->_target/*4*/);
  981. /*[IF*/
  982. {/*AT*/X149afd_check((C)->_arguments/*8*/);
  983. }
  984. /*FI]*/
  985. }
  986.  
  987.  
  988. void r384c_define_opening(T384* C){
  989. T0* _t=NULL;
  990. /*[IF*/
  991. /*AF*//*AE*/
  992. /*FI]*/
  993. /*[IF*/
  994. /*AF*/if(((C)->_result_type/*44*/)!=((void*)(NULL))){
  995. _t=X54run_type((C)->_result_type/*44*/);
  996. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  997. /*]*/
  998. X54c_type_for_result_in(_t,((T0*)ms51_3077376));
  999. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_543));
  1000. X54c_initialize_in(_t,((T0*)ms51_3077376));
  1001. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  1002. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1003. /*]*/
  1004. /*[IF*/
  1005. if(r43no_check((T43*)(oBC12run_control))){
  1006. r7append((T7*)(oBC12c_frame_descriptor_locals),((T0*)ms51_10703));
  1007. r204increment((T204*)(oBC12c_frame_descriptor_local_count));
  1008. r7append((T7*)(oBC12c_frame_descriptor_format),((T0*)ms14_7404));
  1009. X54c_frame_descriptor(_t);
  1010. }
  1011. /*FI]*/
  1012. }
  1013. /*FI]*/
  1014. /*[IF*/
  1015. /*AF*//*AE*/
  1016. /*FI]*/
  1017. /*[IF*/
  1018. if(r43ensure_check((T43*)(oBC12run_control))){
  1019. /*[IF*/
  1020. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1021. r215c_declare_for_old((T215*)((C)->_ensure_assertion/*24*/));
  1022. }
  1023. /*FI]*/
  1024. }
  1025. /*FI]*/
  1026. /*[IF*/
  1027. if(r43no_check((T43*)(oBC12run_control))){
  1028. /*[IF*/
  1029. if((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)>(0)){
  1030. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_21762));
  1031. /*[IRF3.5append_in*/r2append_in(((T2)(((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)),((T0*)ms51_3077376));
  1032. /*]*/
  1033. r7extend((T7*)(((T0*)ms51_3077376)),'\135');
  1034. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  1035. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1036. /*]*/
  1037. }
  1038. /*FI]*/
  1039. r384c_initialize_ds_one_by_one(C);
  1040. /*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
  1041. T2 _j=0;
  1042. T2 _i=0;
  1043. _j=1;
  1044. while (!((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)==(_i))) {
  1045. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_8225));
  1046. /*]*/
  1047. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),_i);
  1048. /*]*/
  1049. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_314));
  1050. /*]*/
  1051. _c=/*(IRF4.6item*/(((T7*)(oBC12c_frame_descriptor_locals))->_storage/*0*/)[(_j)-(1)]/*)*/;
  1052. while (!((_c)==('\54'))) {
  1053. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1054. T3 b1=_c;
  1055. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1056. }/*]*/
  1057. /*]*/
  1058. _j=(_j)+(1);
  1059. _c=/*(IRF4.6item*/(((T7*)(oBC12c_frame_descriptor_locals))->_storage/*0*/)[(_j)-(1)]/*)*/;
  1060. }
  1061. _j=(_j)+(1);
  1062. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
  1063. /*]*/
  1064. _i=(_i)+(1);
  1065. }
  1066. }/*]*/
  1067. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_14820a));
  1068. /*]*/
  1069. }
  1070. /*FI]*/
  1071. /*[IF*/
  1072. if(r43ensure_check((T43*)(oBC12run_control))){
  1073. /*[IF*/
  1074. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1075. r215compile_to_c_old((T215*)((C)->_ensure_assertion/*24*/));
  1076. }
  1077. /*FI]*/
  1078. }
  1079. /*FI]*/
  1080. /*[IF*/
  1081. /*AF*//*AE*/
  1082. /*FI]*/
  1083. /*[IF*/
  1084. /*AF*//*AE*/
  1085. /*FI]*/
  1086. /*[IF*/
  1087. /*AF*//*AE*/
  1088. /*FI]*/
  1089. /*[IF*/
  1090. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  1091. r357compile_to_c((T357*)((C)->_require_assertion/*20*/));
  1092. }
  1093. /*FI]*/
  1094. /*[IF*/
  1095. /*AF*//*AE*/
  1096. /*FI]*/
  1097. }
  1098.  
  1099.  
  1100. void r384c_define_closing(T384* C){
  1101. /*[IF*/
  1102. if(r43ensure_check((T43*)(oBC12run_control))){
  1103. /*[IF*/
  1104. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1105. r215compile_to_c((T215*)((C)->_ensure_assertion/*24*/));
  1106. }
  1107. /*FI]*/
  1108. }
  1109. /*FI]*/
  1110. /*[IF*/
  1111. if(r384use_current(C)){
  1112. r25current_class_invariant((C)->_current_type/*4*/);
  1113. }
  1114. /*FI]*/
  1115. /*[IF*/
  1116. /*AF*//*AE*/
  1117. /*FI]*/
  1118. /*[IF*/
  1119. if(r43no_check((T43*)(oBC12run_control))){
  1120. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_19775));
  1121. /*]*/
  1122. }
  1123. /*FI]*/
  1124. }
  1125.  
  1126.  
  1127. void r384c_assertion_flag(T384* C){
  1128. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1129. /*]*/
  1130. r384c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  1131. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_30510));
  1132. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1133. /*]*/
  1134. }
  1135. /*No:RUN_FEATURE_8.use_current_state*/
  1136. /*No:RUN_FEATURE_8.fz_void*/
  1137. /*No:RUN_FEATURE_8.address_of_c_define*/
  1138. /*No:RUN_FEATURE_8.ucs_false*/
  1139.  
  1140.  
  1141. T6 r384is_static(T384* C){
  1142. T6 R=0;
  1143. T0* _type_bit=NULL;
  1144. T0* _n=NULL;
  1145. _n=X83to_string((C)->_name/*16*/);
  1146. /*[IF*/
  1147. if((((T0*)ms14_34672))==((void*)(_n))){
  1148. R=1;
  1149. /*[IF*/
  1150. if(X54is_expanded((C)->_current_type/*4*/)){
  1151. C->_static_value_mem=1;
  1152. }
  1153. /*FI]*/
  1154. }
  1155.  else if((((T0*)ms14_60434))==((void*)(_n))){
  1156. R=1;
  1157. /*[IF*/
  1158. if(X54is_basic_eiffel_expanded((C)->_current_type/*4*/)){
  1159. C->_static_value_mem=1;
  1160. }
  1161. /*FI]*/
  1162. }
  1163.  else if(((((T0*)ms14_2840a))==((void*)(_n)))&&(X54is_bit((C)->_current_type/*4*/))){
  1164. R=1;
  1165. _type_bit=(C)->_current_type/*4*/;
  1166. if(NULL!=(_type_bit))switch(((T0*)_type_bit)->id) {
  1167. case 276: case 277: 
  1168. break;
  1169. default:
  1170. _type_bit=NULL;
  1171. };C->_static_value_mem=X53nb(_type_bit);
  1172. }
  1173. /*FI]*/
  1174. return R;
  1175. }
  1176.  
  1177.  
  1178. T0* r384start_position(T384* C){
  1179. T0* R=NULL;
  1180. R=r291start_position((T291*)((C)->_base_feature/*36*/));
  1181. return R;
  1182. }
  1183. /*No:RUN_FEATURE_8.c_initialize_locals_one_by_one*/
  1184.  
  1185.  
  1186. void r384mapping_name(T384* C){
  1187. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1188. T3 b1='r';
  1189. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1190. }/*]*/
  1191. /*]*/
  1192. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),r384id(C));
  1193. /*]*/
  1194. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_key((C)->_name/*16*/));
  1195. /*]*/
  1196. }
  1197.  
  1198.  
  1199. T2 r384integer_value(T384* C,T0* a1){
  1200. T2 R=0;
  1201. T0* _n=NULL;
  1202. _n=X83to_string((C)->_name/*16*/);
  1203. /*[IF*/
  1204. if((((T0*)ms14_22776))==((void*)(_n))){
  1205. R= T2BITS ;
  1206. }
  1207.  else if((((T0*)ms14_29456))==((void*)(_n))){
  1208. R= T3BITS ;
  1209. }
  1210. else{
  1211. r21add_position(a1);
  1212. r21add_position(r384start_position(C));
  1213. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_45846);
  1214. r21fatal_error((T21*)(oBC12eh),b1);
  1215. }/*]*/
  1216. }
  1217. /*FI]*/
  1218. return R;
  1219. }
  1220.  
  1221.  
  1222. void r384c_closing(T384* C){
  1223. r384c_define_closing(C);
  1224. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_8364));
  1225. /*]*/
  1226. r384c_frame_descriptor(C);
  1227. }
  1228.  
  1229.  
  1230. T6 r384use_current(T384* C){
  1231. T6 R=0;
  1232. {int z1=(C)->_use_current_state/*28*/;
  1233.  
  1234. if((14==z1)){
  1235. R=1;
  1236. }
  1237.  else 
  1238. if((13==z1)){
  1239. }
  1240.  else 
  1241. if((15==z1)){
  1242. C->_use_current_state=16;
  1243. r384compute_use_current(C);
  1244. R=r384use_current(C);
  1245. }
  1246.  else {R=1;
  1247. }}
  1248. return R;
  1249. }
  1250.  
  1251.  
  1252. T2 r384id(T384* C){
  1253. T2 R=0;
  1254. R=X54id((C)->_current_type/*4*/);
  1255. return R;
  1256. }
  1257.  
  1258.  
  1259. void r384c_define_with_body(T384* C,T0* a1){
  1260. r384define_prototype(C);
  1261. r384c_define_opening(C);
  1262. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a1);
  1263. /*]*/
  1264. r384c_define_closing(C);
  1265. /*[IF*/
  1266. if(((C)->_result_type/*44*/)==((void*)(NULL))){
  1267. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
  1268. /*]*/
  1269. }
  1270. else{
  1271. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_8364));
  1272. /*]*/
  1273. }
  1274. /*FI]*/
  1275. r384c_frame_descriptor(C);
  1276. }
  1277.  
  1278.  
  1279. void r384routine_afd_check(T384* C){
  1280. /*[IF*/
  1281. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  1282. r357afd_check((T357*)((C)->_require_assertion/*20*/));
  1283. }
  1284. /*FI]*/
  1285. /*[IF*/
  1286. /*AF*//*AE*/
  1287. /*FI]*/
  1288. /*[IF*/
  1289. /*AF*//*AE*/
  1290. /*FI]*/
  1291. /*[IF*/
  1292. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1293. r215afd_check((T215*)((C)->_ensure_assertion/*24*/));
  1294. }
  1295. /*FI]*/
  1296. }
  1297. /*No:RUN_FEATURE_8.us_integer_bits*/
  1298.  
  1299.  
  1300. void r384std_compute_use_current(T384* C){
  1301. /*[IF*/
  1302. if(((C)->_use_current_state/*28*/)==(16)){
  1303. /*[IF*/
  1304. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  1305. /*[IF*/
  1306. if(r357use_current((T357*)((C)->_require_assertion/*20*/))){
  1307. C->_use_current_state=14;
  1308. }
  1309. /*FI]*/
  1310. }
  1311. /*FI]*/
  1312. }
  1313. /*FI]*/
  1314. /*[IF*/
  1315. if(((C)->_use_current_state/*28*/)==(16)){
  1316. /*[IF*/
  1317. /*AF*//*AE*/
  1318. /*FI]*/
  1319. }
  1320. /*FI]*/
  1321. /*[IF*/
  1322. if(((C)->_use_current_state/*28*/)==(16)){
  1323. /*[IF*/
  1324. /*AF*//*AE*/
  1325. /*FI]*/
  1326. }
  1327. /*FI]*/
  1328. /*[IF*/
  1329. if(((C)->_use_current_state/*28*/)==(16)){
  1330. /*[IF*/
  1331. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1332. /*[IF*/
  1333. if(r215use_current((T215*)((C)->_ensure_assertion/*24*/))){
  1334. C->_use_current_state=14;
  1335. }
  1336. /*FI]*/
  1337. }
  1338. /*FI]*/
  1339. }
  1340. /*FI]*/
  1341. /*[IF*/
  1342. if(((C)->_use_current_state/*28*/)==(16)){
  1343. C->_use_current_state=13;
  1344. }
  1345. /*FI]*/
  1346. }
  1347.  
  1348.  
  1349. T0* r384run_class(T384* C){
  1350. T0* R=NULL;
  1351. R=X54run_class((C)->_current_type/*4*/);
  1352. return R;
  1353. }
  1354. /*No:RUN_FEATURE_8.result_type*/
  1355. /*No:RUN_FEATURE_8.base_feature*/
  1356. /*No:RUN_FEATURE_8.ensure_assertion*/
  1357. /*No:RUN_FEATURE_8.static_value_mem*/
  1358.  
  1359.  
  1360. void r384c_opening(T384* C){
  1361. r384define_prototype(C);
  1362. r384c_define_opening(C);
  1363. }
  1364.  
  1365.  
  1366. T6 r384is_exported_in(T384* C,T0* a1){
  1367. T6 R=0;
  1368. R=r101gives_permission_to((T101*)(r384clients(C)),a1);
  1369. return R;
  1370. }
  1371. /*No:RUN_FEATURE_8.fatal_error*/
  1372.  
  1373.  
  1374. void r384default_mapping_function(T384* C){
  1375. T6 _tcbd=0;
  1376. T6 _uc=0;
  1377. T6 _no_check=0;
  1378. _no_check=r43no_check((T43*)(oBC12run_control));
  1379. _uc=r384use_current(C);
  1380. /*[IF*/
  1381. if(!(_uc)){
  1382. _tcbd=r25target_cannot_be_dropped((T25*)(oBC12cpp));
  1383. /*[IF*/
  1384. if(_tcbd){
  1385. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1386. T3 b1='\54';
  1387. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1388. }/*]*/
  1389. /*]*/
  1390. }
  1391. /*FI]*/
  1392. }
  1393. /*FI]*/
  1394. r384mapping_name(C);
  1395. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1396. T3 b1='\50';
  1397. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1398. }/*]*/
  1399. /*]*/
  1400. /*[IF*/
  1401. if(_no_check){
  1402. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_777));
  1403. /*]*/
  1404. }
  1405. /*FI]*/
  1406. /*[IF*/
  1407. if(_uc){
  1408. /*[IF*/
  1409. if(_no_check){
  1410. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1411. T3 b1='\54';
  1412. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1413. }/*]*/
  1414. /*]*/
  1415. }
  1416. /*FI]*/
  1417. r25put_target_as_target((T25*)(oBC12cpp));
  1418. }
  1419. /*FI]*/
  1420. /*[IF*/
  1421. if(((C)->_arguments/*40*/)!=((void*)(NULL))){
  1422. /*[IF*/
  1423. if((_uc)||(_no_check)){
  1424. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1425. T3 b1='\54';
  1426. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1427. }/*]*/
  1428. /*]*/
  1429. }
  1430. /*FI]*/
  1431. r25put_arguments((T25*)(oBC12cpp));
  1432. }
  1433. /*FI]*/
  1434. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1435. T3 b1='\51';
  1436. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1437. }/*]*/
  1438. /*]*/
  1439. /*[IF*/
  1440. if((!(_uc))&&(_tcbd)){
  1441. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1442. T3 b1='\51';
  1443. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1444. }/*]*/
  1445. /*]*/
  1446. }
  1447. /*FI]*/
  1448. }
  1449. /*No:RUN_FEATURE_8.arguments*/
  1450. /*No:RUN_FEATURE_8.is_once_function*/
  1451. /*No:RUN_FEATURE_8.us_se_argc*/
  1452. /*No:RUN_FEATURE_8.current_type*/
  1453. /*No:RUN_FEATURE_8.clients_memory*/
  1454.  
  1455.  
  1456. void r384add_client(T384* C,T0* a1){
  1457. T2 _i=0;
  1458. /*[IF*/
  1459. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  1460. {T60*n=malloc(sizeof(*n));
  1461. *n=M60;
  1462. r60with_capacity(n,4);
  1463. C->_actuals_clients=(T0*)n;
  1464. }
  1465. r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
  1466. }
  1467. else{
  1468. _i=r60fast_index_of((T60*)((C)->_actuals_clients/*12*/),a1);
  1469. /*[IF*/
  1470. if((_i)>(((T60*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  1471. r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
  1472. }
  1473. /*FI]*/
  1474. }
  1475. /*FI]*/
  1476. r24add_client((T24*)(r384run_class(C)),a1);
  1477. }
  1478. /*No:RUN_FEATURE_8.ucs_in_computation*/
  1479. /*No:RUN_FEATURE_8.us_signal_number*/
  1480.  
  1481.  
  1482. void r384make(T384* C,T0* a1,T0* a2,T0* a3){
  1483. C->_current_type=a1;
  1484. C->_name=a2;
  1485. C->_base_feature=a3;
  1486. /*[IRF3.5add_rf*/r325put(((T325*)(((T24*)(r384run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X83to_key(a2));
  1487. /*]*/
  1488. r22incr_magic_count((T22*)(oBC12small_eiffel));
  1489. C->_use_current_state=15;
  1490. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  1491. r384initialize(C);
  1492. r22pop((T22*)(oBC12small_eiffel));
  1493. }
  1494. /*No:RUN_FEATURE_8.routine_body*/
  1495. /*No:RUN_FEATURE_8.ucs_true*/
  1496. /*No:RUN_FEATURE_8.name*/
  1497. /*No:RUN_FEATURE_8.c_prototype*/
  1498. /*No:RUN_FEATURE_8.afd_check*/
  1499.  
  1500.  
  1501. T0* r384clients(T384* C){
  1502. T0* R=NULL;
  1503. T0* _bfbc=NULL;
  1504. T0* _bc=NULL;
  1505. /*[IF*/
  1506. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  1507. _bc=X54base_class((C)->_current_type/*4*/);
  1508. _bfbc=((T291*)((C)->_base_feature/*36*/))->_base_class/*4*/;
  1509. /*[IF*/
  1510. if((_bc)==((void*)(_bfbc))){
  1511. R=((T291*)((C)->_base_feature/*36*/))->_clients/*16*/;
  1512. }
  1513. else{
  1514. R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
  1515. }
  1516. /*FI]*/
  1517. C->_clients_memory=R;
  1518. }
  1519. else{
  1520. R=(C)->_clients_memory/*8*/;
  1521. }
  1522. /*FI]*/
  1523. return R;
  1524. }
  1525.  
  1526.  
  1527. T0* r384type_string(void){
  1528. if(fBC12type_string==0){
  1529. fBC12type_string=1;
  1530. {T272*n=malloc(sizeof(*n));
  1531. *n=M272;
  1532. r272make(n,NULL);
  1533. oBC12type_string=(T0*)n;
  1534. }
  1535. }
  1536. return oBC12type_string;}
  1537.  
  1538.  
  1539. void r384c_define(T384* C){
  1540. T0* _bcn=NULL;
  1541. T0* _native=NULL;
  1542. T0* _bf=NULL;
  1543. _bf=(C)->_base_feature/*36*/;
  1544. _native=(((T291*)_bf))->_native/*40*/;
  1545. _bcn=((T64*)(((T63*)((((T291*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
  1546. X288c_define_function(_native,(T0*)C,_bcn,X83to_string(/*(IRF4.6first_name*/r85item(((T85*)((((T291*)_bf))->_names/*8*/)),1)/*)*/));
  1547. }
  1548.  
  1549.  
  1550. void r384once_result_in(T384* C,T0* a1){
  1551. r7extend(((T7*)a1),'o');
  1552. r291mapping_c_name_in((T291*)((C)->_base_feature/*36*/),a1);
  1553. }
  1554. /*No:RUN_FEATURE_8.rescue_compound*/
  1555.  
  1556.  
  1557. void r384fall_down(T384* C){
  1558. T0* _rf=NULL;
  1559. T0* _sub_name=NULL;
  1560. T0* _sub_bc=NULL;
  1561. T0* _current_bc=NULL;
  1562. T0* _sub_rc=NULL;
  1563. T0* _current_rc=NULL;
  1564. T2 _i=0;
  1565. T0* _running=NULL;
  1566. _current_rc=X54run_class((C)->_current_type/*4*/);
  1567. _running=(((T24*)_current_rc))->_running/*12*/;
  1568. /*[IF*/
  1569. if((_running)!=((void*)(NULL))){
  1570. _current_bc=X54base_class((C)->_current_type/*4*/);
  1571. _i=(((T328*)_running))->_lower/*12*/;
  1572. while (!((_i)>((((T328*)_running))->_upper/*8*/))) {
  1573. _sub_rc=r328item(((T328*)_running),_i);
  1574. /*[IF*/
  1575. if((_sub_rc)!=((void*)(_current_rc))){
  1576. _sub_bc=X54base_class((((T24*)_sub_rc))->_current_type/*0*/);
  1577. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  1578. _rf=r24get_feature(((T24*)_sub_rc),_sub_name);
  1579. }
  1580. /*FI]*/
  1581. _i=(_i)+(1);
  1582. }
  1583. }
  1584. /*FI]*/
  1585. }
  1586. /*No:RUN_FEATURE_8.actuals_clients*/
  1587. /*No:RUN_FEATURE_8.us_result*/
  1588.  
  1589.  
  1590. void r384define_prototype(T384* C){
  1591. T6 _no_check=0;
  1592. T2 _mem_id=0;
  1593. _no_check=r43no_check((T43*)(oBC12run_control));
  1594. /*[IF*/
  1595. if(r43no_check((T43*)(oBC12run_control))){
  1596. /*[IRF3.3reset*/((((T204*)((T204*)(oBC12c_frame_descriptor_local_count))))->_value)=(0);
  1597. /*]*/
  1598. /*[IRF3.3clear*/((((T7*)((T7*)(oBC12c_frame_descriptor_format))))->_count)=(0);
  1599. /*]*/
  1600. r7extend((T7*)(oBC12c_frame_descriptor_format),'\42');
  1601. /*[IRF3.3clear*/((((T7*)((T7*)(oBC12c_frame_descriptor_locals))))->_count)=(0);
  1602. /*]*/
  1603. }
  1604. /*FI]*/
  1605. _mem_id=r384id(C);
  1606. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1607. /*]*/
  1608. /*[IF*/
  1609. if(((C)->_result_type/*44*/)==((void*)(NULL))){
  1610. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  1611. }
  1612. else{
  1613. X54c_type_for_result_in(X54run_type((C)->_result_type/*44*/),((T0*)ms51_3077376));
  1614. }
  1615. /*FI]*/
  1616. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  1617. r7extend((T7*)(((T0*)ms51_3077376)),'r');
  1618. r2append_in(_mem_id,((T0*)ms51_3077376));
  1619. X83mapping_c_in((C)->_name/*16*/,((T0*)ms51_3077376));
  1620. r7extend((T7*)(((T0*)ms51_3077376)),'\50');
  1621. /*[IF*/
  1622. if(_no_check){
  1623. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_56460));
  1624. /*[IF*/
  1625. if((r384use_current(C))||(((C)->_arguments/*40*/)!=((void*)(NULL)))){
  1626. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1627. }
  1628. /*FI]*/
  1629. }
  1630. /*FI]*/
  1631. /*[IF*/
  1632. if(r384use_current(C)){
  1633. X54c_type_for_target_in((C)->_current_type/*4*/,((T0*)ms51_3077376));
  1634. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  1635. r7extend((T7*)(((T0*)ms51_3077376)),'C');
  1636. X54c_frame_descriptor((C)->_current_type/*4*/);
  1637. /*[IF*/
  1638. if(((C)->_arguments/*40*/)!=((void*)(NULL))){
  1639. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1640. }
  1641. /*FI]*/
  1642. }
  1643. /*FI]*/
  1644. /*[IF*/
  1645. if(((C)->_arguments/*40*/)==((void*)(NULL))){
  1646. /*[IF*/
  1647. if(_no_check){
  1648. }
  1649.  else if(!(r384use_current(C))){
  1650. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  1651. }
  1652. /*FI]*/
  1653. }
  1654. else{
  1655. r187compile_to_c_in((T187*)((C)->_arguments/*40*/),((T0*)ms51_3077376));
  1656. }
  1657. /*FI]*/
  1658. r7extend((T7*)(((T0*)ms51_3077376)),'\51');
  1659. r25put_c_heading((T25*)(oBC12cpp),((T0*)ms51_3077376));
  1660. /*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
  1661. /*]*/
  1662. }
  1663.  
  1664.  
  1665. void r384put_tag(T384* C){
  1666. T0* _fn=NULL;
  1667. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1668. T3 b1='\42';
  1669. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1670. }/*]*/
  1671. /*]*/
  1672. _fn=/*(IRF4.6first_name*/r85item(((T85*)(((T291*)((C)->_base_feature/*36*/))->_names/*8*/)),1)/*)*/;
  1673. X83put_cpp_tag(_fn);
  1674. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string(_fn));
  1675. /*]*/
  1676. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_1148));
  1677. /*]*/
  1678. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T64*)(/*(IRF4.6base_class_name*/(((T63*)(((T291*)((C)->_base_feature/*36*/))->_base_class/*4*/)))->_name/*24*//*)*/))->_to_string/*0*/);
  1679. /*]*/
  1680. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1681. T3 b1='\42';
  1682. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1683. }/*]*/
  1684. /*]*/
  1685. }
  1686. /*No:RUN_FEATURE_8.us_twin*/
  1687. /*No:RUN_FEATURE_8.c_code*/
  1688. /*No:RUN_FEATURE_8.fz_00*/
  1689.  
  1690.  
  1691. void r384c_initialize_ds_one_by_one(T384* C){
  1692. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_37325));
  1693. r384c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  1694. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
  1695. /*[IF*/
  1696. if(r384use_current(C)){
  1697. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_18550));
  1698. }
  1699. else{
  1700. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_11254));
  1701. }
  1702. /*FI]*/
  1703. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1704. /*]*/
  1705. r25put_position_in_ds(r384start_position(C));
  1706. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_11736));
  1707. /*]*/
  1708. /*[IF*/
  1709. if((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)>(0)){
  1710. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_12150));
  1711. /*]*/
  1712. }
  1713. /*FI]*/
  1714. }
  1715. /*No:RUN_FEATURE_8.ucs_not_computed*/
  1716. /*No:RUN_FEATURE_8.is_pre_computable*/
  1717. /*No:RUN_FEATURE_8.fz_12*/
  1718. /*No:RUN_FEATURE_8.fz_iinaiv*/
  1719. /*No:RUN_FEATURE_8.collect_c_tmp*/
  1720.  
  1721.  
  1722. void r384c_frame_descriptor(T384* C){
  1723. /*[IF*/
  1724. if(r43no_check((T43*)(oBC12run_control))){
  1725. r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_23640));
  1726. r384c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
  1727. r25put_extern7((T25*)(oBC12cpp),((T0*)ms51_3077376));
  1728. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  1729. T3 b1='\173';
  1730. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  1731. }/*]*/
  1732. /*]*/
  1733. r384put_tag(C);
  1734. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1735. /*]*/
  1736. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1737. /*[IF*/
  1738. if(r384use_current(C)){
  1739. r7extend((T7*)(((T0*)ms51_3077376)),'1');
  1740. }
  1741. else{
  1742. r7extend((T7*)(((T0*)ms51_3077376)),'0');
  1743. }
  1744. /*FI]*/
  1745. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1746. /*[IRF3.5append_in*/r2append_in(((T2)(((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)),((T0*)ms51_3077376));
  1747. /*]*/
  1748. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1749. r7append((T7*)(((T0*)ms51_3077376)),oBC12c_frame_descriptor_format);
  1750. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_2316));
  1751. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1752. /*]*/
  1753. }
  1754. /*FI]*/
  1755. }
  1756. /*No:RUN_FEATURE_8.fz_15*/
  1757. /*No:RUN_FEATURE_8.us_character_bits*/
  1758.  
  1759.  
  1760. T2 r384arg_count(T384* C){
  1761. T2 R=0;
  1762. /*[IF*/
  1763. if(((C)->_arguments/*40*/)!=((void*)(NULL))){
  1764. R=/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*40*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1765. }
  1766. /*FI]*/
  1767. return R;
  1768. }
  1769. /*No:RUN_FEATURE_8.address_of_c_mapping*/
  1770. /*No:RUN_FEATURE_8.us_is_expanded_type*/
  1771.  
  1772.  
  1773. void r384mapping_c(T384* C){
  1774. T0* _bcn=NULL;
  1775. T0* _native=NULL;
  1776. T0* _bf=NULL;
  1777. _bf=(C)->_base_feature/*36*/;
  1778. _native=(((T291*)_bf))->_native/*40*/;
  1779. _bcn=((T64*)(((T63*)((((T291*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
  1780. X288c_mapping_function(_native,(T0*)C,_bcn,X83to_string(/*(IRF4.6first_name*/r85item(((T85*)((((T291*)_bf))->_names/*8*/)),1)/*)*/));
  1781. }
  1782.  
  1783.  
  1784. void r384initialize(T384* C){
  1785. T0* _type_bit_ref=NULL;
  1786. T0* _rf=NULL;
  1787. T0* _n=NULL;
  1788. _n=X83to_string(/*(IRF4.6first_name*/r85item(((T85*)(((T291*)((C)->_base_feature/*36*/))->_names/*8*/)),1)/*)*/);
  1789. C->_arguments=((T291*)((C)->_base_feature/*36*/))->_arguments/*20*/;
  1790. /*[IF*/
  1791. if((((T0*)ms14_2695))==((void*)(_n))){
  1792. _type_bit_ref=(C)->_current_type/*4*/;
  1793. if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
  1794. case 373: 
  1795. break;
  1796. default:
  1797. _type_bit_ref=NULL;
  1798. };C->_result_type=(((T373*)_type_bit_ref))->_type_bit/*4*/;
  1799. /*[IF*/
  1800. if(((C)->_arguments/*40*/)!=((void*)(NULL))){
  1801. /*[IF*/
  1802. if(!(r187is_runnable((T187*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
  1803. {T187*n=malloc(sizeof(*n));
  1804. *n=M187;
  1805. r187with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
  1806. C->_arguments=(T0*)n;
  1807. }
  1808. }
  1809. /*FI]*/
  1810. }
  1811. /*FI]*/
  1812. }
  1813. else{
  1814. C->_result_type=((T291*)((C)->_base_feature/*36*/))->_result_type/*48*/;
  1815. /*[IF*/
  1816. if(((C)->_arguments/*40*/)==((void*)(NULL))){
  1817. C->_result_type=X54to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
  1818. }
  1819.  else if(X54is_like_argument((C)->_result_type/*44*/)){
  1820. /*[IF*/
  1821. if(!(r187is_runnable((T187*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
  1822. {T187*n=malloc(sizeof(*n));
  1823. *n=M187;
  1824. r187with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
  1825. C->_arguments=(T0*)n;
  1826. }
  1827. }
  1828. /*FI]*/
  1829. C->_result_type=X54to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
  1830. }
  1831. else{
  1832. C->_result_type=X54to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
  1833. /*[IF*/
  1834. if(!(r187is_runnable((T187*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
  1835. {T187*n=malloc(sizeof(*n));
  1836. *n=M187;
  1837. r187with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
  1838. C->_arguments=(T0*)n;
  1839. }
  1840. }
  1841. /*FI]*/
  1842. }
  1843. /*FI]*/
  1844. }
  1845. /*FI]*/
  1846. /*[IF*/
  1847. if(r43require_check((T43*)(oBC12run_control))){
  1848. C->_require_assertion=r291run_require((T0*)C);
  1849. }
  1850. /*FI]*/
  1851. /*[IF*/
  1852. if(r43ensure_check((T43*)(oBC12run_control))){
  1853. C->_ensure_assertion=r291run_ensure((T0*)C);
  1854. }
  1855. /*FI]*/
  1856. /*[IF*/
  1857. if((((T0*)ms14_1840))==((void*)(_n))){
  1858. _rf=r24get_copy((T24*)(r384run_class(C)));
  1859. }
  1860.  else if((((T0*)ms14_8610))==((void*)(_n))){
  1861. ((/*UT*/(void)((T272*)(r384type_string()))),r272set_at_run_time());
  1862. }
  1863.  else if((((T0*)ms14_30885))==((void*)(_n))){
  1864. /*[IRF3.3set_generator_used*/((((T43*)((T43*)(oBC12run_control))))->_generator_used)=(1);
  1865. /*]*/
  1866. /*[IRF3.3set_generating_type_used*/((((T43*)((T43*)(oBC12run_control))))->_generating_type_used)=(1);
  1867. /*]*/
  1868. }
  1869.  else if((((T0*)ms14_14130))==((void*)(_n))){
  1870. /*[IRF3.3set_generator_used*/((((T43*)((T43*)(oBC12run_control))))->_generator_used)=(1);
  1871. /*]*/
  1872. }
  1873.  else if((((T0*)ms14_13842))==((void*)(_n))){
  1874. /*[IRF3.3set_used*/((((T363*)((T363*)(oBC12exceptions_handler))))->_used)=(1);
  1875. /*]*/
  1876. }
  1877.  else if((((T0*)ms14_26351))==((void*)(_n))){
  1878. /*[IRF3.3set_used*/((((T363*)((T363*)(oBC12exceptions_handler))))->_used)=(1);
  1879. /*]*/
  1880. }
  1881. /*FI]*/
  1882. }
  1883. /*No:RUN_FEATURE_8.can_be_dropped*/
  1884.  
  1885.  
  1886. void r384external_prototype(T384* C,T0* a1){
  1887. T0* _t=NULL;
  1888. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
  1889. /*]*/
  1890. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_12060));
  1891. _t=(C)->_result_type/*44*/;
  1892. /*[IF*/
  1893. if((_t)==((void*)(NULL))){
  1894. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  1895. }
  1896. else{
  1897. X54c_type_for_external_in(_t,((T0*)ms51_3077376));
  1898. }
  1899. /*FI]*/
  1900. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  1901. r7append((T7*)(((T0*)ms51_3077376)),X289external_c_name(a1));
  1902. r7extend((T7*)(((T0*)ms51_3077376)),'\50');
  1903. /*[IF*/
  1904. if(X289use_current(a1)){
  1905. X54c_type_for_external_in((C)->_current_type/*4*/,((T0*)ms51_3077376));
  1906. r7extend((T7*)(((T0*)ms51_3077376)),'\40');
  1907. r7extend((T7*)(((T0*)ms51_3077376)),'C');
  1908. /*[IF*/
  1909. if(((C)->_arguments/*40*/)!=((void*)(NULL))){
  1910. r7extend((T7*)(((T0*)ms51_3077376)),'\54');
  1911. }
  1912. /*FI]*/
  1913. }
  1914. /*FI]*/
  1915. /*[IF*/
  1916. if(((C)->_arguments/*40*/)==((void*)(NULL))){
  1917. /*[IF*/
  1918. if(!(X289use_current(a1))){
  1919. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
  1920. }
  1921. /*FI]*/
  1922. }
  1923. else{
  1924. r187external_prototype_in((T187*)((C)->_arguments/*40*/),((T0*)ms51_3077376));
  1925. }
  1926. /*FI]*/
  1927. r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_348));
  1928. r25swap_on_h((T25*)(oBC12cpp));
  1929. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
  1930. /*]*/
  1931. /*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
  1932. /*]*/
  1933. }
  1934. /*No:RUN_FEATURE_8.require_assertion*/
  1935. /*No:RUN_FEATURE_8.us_generator*/
  1936. /*No:RUN_FEATURE_8.us_generating_type*/
  1937. /*No:RUN_FEATURE_8.us_count*/
  1938. /*No:RUN_FEATURE_8.us_exception*/
  1939.  
  1940.  
  1941. void r384compute_use_current(T384* C){
  1942. /*[IF*/
  1943. if(r291use_current((T291*)((C)->_base_feature/*36*/))){
  1944. C->_use_current_state=14;
  1945. }
  1946. else{
  1947. r384std_compute_use_current(C);
  1948. }
  1949. /*FI]*/
  1950. }
  1951. /*No:RUN_FEATURE_8.local_vars*/
  1952. /*No:RUN_FEATURE_8.us_bitn*/
  1953. /*No:RUN_FEATURE_8.us_is_basic_expanded_type*/
  1954.  
  1955.  
  1956. void r384c_frame_descriptor_name_in(T384* C,T0* a1){
  1957. r7extend(((T7*)a1),'f');
  1958. r2append_in(r384id(C),a1);
  1959. X83mapping_c_in((C)->_name/*16*/,a1);
  1960. }
  1961.  
  1962.  
  1963. void r344add_procedure(T0* a1){
  1964. r390add_last((T390*)(oBC344procedure_list),a1);
  1965. }
  1966. T0*oBC344procedure_list=NULL;
  1967.  
  1968.  
  1969. void r344gc_mark_in(T0* a1){
  1970. T0* _entity=NULL;
  1971. T0* _rt=NULL;
  1972. T0* _mem=NULL;
  1973. T0* _of=NULL;
  1974. T0* _rf6=NULL;
  1975. T2 _i=0;
  1976. /*[IF*/
  1977. if((/*(IRF4.6count*/(((T49*)(oBC344function_list))->_upper/*12*/)+(1)/*)*/)>(0)){
  1978. {T7*n=malloc(sizeof(*n));
  1979. *n=M7;
  1980. r7make(n,32);
  1981. _entity=(T0*)n;
  1982. }
  1983. _i=((T49*)(oBC344function_list))->_upper/*12*/;
  1984. {T345*n=malloc(sizeof(*n));
  1985. *n=M345;
  1986. r345with_capacity(n,(_i)/(2));
  1987. _mem=(T0*)n;
  1988. }
  1989. while (!((_i)<(0))) {
  1990. _rf6=/*(IRF4.6item*/(((T49*)(oBC344function_list))->_storage/*4*/)[_i]/*)*/;
  1991. _of=(((T50*)_rf6))->_base_feature/*32*/;
  1992. /*[IF*/
  1993. if(!(r345fast_has(((T345*)_mem),_of))){
  1994. /*[IF*/
  1995. if(((T24*)(X54run_class((((T50*)_rf6))->_current_type/*4*/)))->_at_run_time/*8*/){
  1996. r345add_last(((T345*)_mem),_of);
  1997. _rt=(((T50*)_rf6))->_result_type/*40*/;
  1998. /*[IF*/
  1999. if(X54need_gc_mark_function(_rt)){
  2000. /*[IRF3.3clear*/((((T7*)(((T7*)_entity))))->_count)=(0);
  2001. /*]*/
  2002. r50once_result_in(((T50*)_rf6),_entity);
  2003. r330mark_for(a1,_entity,X54run_class(_rt));
  2004. }
  2005. /*FI]*/
  2006. }
  2007. /*FI]*/
  2008. }
  2009. /*FI]*/
  2010. _i=(_i)-(1);
  2011. }
  2012. }
  2013. /*FI]*/
  2014. }
  2015.  
  2016.  
  2017. void r344add_function(T0* a1){
  2018. r49add_last((T49*)(oBC344function_list),a1);
  2019. }
  2020. T0*oBC344function_list=NULL;
  2021.  
  2022.  
  2023. void r255anchor_cycle_start(T255* C){
  2024. T2 _i=0;
  2025. /*[IF*/
  2026. if((((T69*)(oBC256visited))->_upper/*8*/)<(0)){
  2027. r69add_last((T69*)(oBC256visited),(C)->_start_position/*4*/);
  2028. }
  2029.  else if(r69fast_has((T69*)(oBC256visited),(C)->_start_position/*4*/)){
  2030. _i=0;
  2031. while (!((_i)>(((T69*)(oBC256visited))->_upper/*8*/))) {
  2032. r21add_position(/*(IRF4.6item*/(((T69*)(oBC256visited))->_storage/*0*/)[_i]/*)*/);
  2033. _i=(_i)+(1);
  2034. }
  2035. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_47439);
  2036. r21fatal_error((T21*)(oBC12eh),b1);
  2037. }/*]*/
  2038. }
  2039. else{
  2040. r69add_last((T69*)(oBC256visited),(C)->_start_position/*4*/);
  2041. }
  2042. /*FI]*/
  2043. }
  2044.  
  2045.  
  2046. void r255anchor_cycle_end(T255* C){
  2047. /*[IF*/
  2048. if(((C)->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/(((T69*)(oBC256visited))->_storage/*0*/)[0]/*)*//*)*/))){
  2049. /*[IRF3.3clear*/((((T69*)((T69*)(oBC256visited))))->_upper)=(-(1));
  2050. /*]*/
  2051. }
  2052. /*FI]*/
  2053. }
  2054. /*No:TYPE_LIKE_FEATURE.fz_void*/
  2055. /*No:TYPE_LIKE_FEATURE.start_position*/
  2056.  
  2057.  
  2058. void r255used_as_reference(T255* C){
  2059. X54used_as_reference((C)->_run_type/*16*/);
  2060. }
  2061.  
  2062.  
  2063. T2 r255id(T255* C){
  2064. T2 R=0;
  2065. R=((T24*)(r255run_class(C)))->_id/*4*/;
  2066. return R;
  2067. }
  2068.  
  2069.  
  2070. T6 r255is_user_expanded(T255* C){
  2071. T6 R=0;
  2072. R=X54is_user_expanded((C)->_run_type/*16*/);
  2073. return R;
  2074. }
  2075.  
  2076.  
  2077. T6 r255is_pointer(T255* C){
  2078. T6 R=0;
  2079. R=X54is_pointer((C)->_run_type/*16*/);
  2080. return R;
  2081. }
  2082.  
  2083.  
  2084. T0* r255to_runnable(T255* C,T0* a1){
  2085. T0* R=NULL;
  2086. T0* _rt=NULL;
  2087. T0* _rc=NULL;
  2088. r255anchor_cycle_start(C);
  2089. _rc=X54run_class(a1);
  2090. _rt=r24get_result_type(((T24*)_rc),(C)->_like_what/*8*/);
  2091. /*[IF*/
  2092. if(((C)->_run_type/*16*/)==((void*)(NULL))){
  2093. C->_run_type=_rt;
  2094. R=(T0*)C;
  2095. }
  2096.  else if(((C)->_run_type/*16*/)==((void*)(_rt))){
  2097. R=(T0*)C;
  2098. }
  2099. else{
  2100. {T255*n=malloc(sizeof(*n));
  2101. *n=M255;
  2102. r255with(n,(T0*)C,_rt);
  2103. R=(T0*)n;
  2104. }
  2105. }
  2106. /*FI]*/
  2107. r255anchor_cycle_end(C);
  2108. return R;
  2109. }
  2110.  
  2111.  
  2112. void r255c_initialize_in(T255* C,T0* a1){
  2113. X54c_initialize_in((C)->_run_type/*16*/,a1);
  2114. }
  2115.  
  2116.  
  2117. void r255gc_define1(T255* C){
  2118. X54gc_define1((C)->_run_type/*16*/);
  2119. }
  2120.  
  2121.  
  2122. void r255to_reference(T255* C){
  2123. X54to_reference((C)->_run_type/*16*/);
  2124. }
  2125.  
  2126.  
  2127. void r255gc_mark_in(T255* C,T0* a1){
  2128. r7append(((T7*)a1),((T0*)ms13_8869));
  2129. r2append_in(r255id(C),a1);
  2130. }
  2131.  
  2132.  
  2133. T0* r255run_class(T255* C){
  2134. T0* R=NULL;
  2135. R=r22run_class((C)->_run_type/*16*/);
  2136. return R;
  2137. }
  2138.  
  2139.  
  2140. void r255c_header_pass2(T255* C){
  2141. X54c_header_pass2((C)->_run_type/*16*/);
  2142. }
  2143.  
  2144.  
  2145. void r255c_header_pass4(T255* C){
  2146. X54c_header_pass4((C)->_run_type/*16*/);
  2147. }
  2148. /*No:TYPE_LIKE_FEATURE.is_like_current*/
  2149.  
  2150.  
  2151. T6 r255is_bit(T255* C){
  2152. T6 R=0;
  2153. R=X54is_bit((C)->_run_type/*16*/);
  2154. return R;
  2155. }
  2156. T0*oBC256visited=NULL;
  2157.  
  2158.  
  2159. T0* r255smallest_ancestor(T255* C,T0* a1){
  2160. T0* R=NULL;
  2161. R=X54smallest_ancestor((C)->_run_type/*16*/,a1);
  2162. return R;
  2163. }
  2164. /*No:TYPE_LIKE_FEATURE.fatal_error*/
  2165.  
  2166.  
  2167. T0* r255run_time_mark(T255* C){
  2168. T0* R=NULL;
  2169. /*[IF*/
  2170. if(((C)->_run_type/*16*/)!=((void*)(NULL))){
  2171. R=X54run_time_mark((C)->_run_type/*16*/);
  2172. }
  2173. /*FI]*/
  2174. return R;
  2175. }
  2176.  
  2177.  
  2178. T6 r255is_expanded(T255* C){
  2179. T6 R=0;
  2180. R=X54is_expanded((C)->_run_type/*16*/);
  2181. return R;
  2182. }
  2183.  
  2184.  
  2185. void r255gc_info_in(T255* C,T0* a1){
  2186. X54gc_info_in((C)->_run_type/*16*/,a1);
  2187. }
  2188.  
  2189.  
  2190. void r255gc_define2(T255* C){
  2191. X54gc_define2((C)->_run_type/*16*/);
  2192. }
  2193. /*No:TYPE_LIKE_FEATURE.is_like_feature*/
  2194. /*No:TYPE_LIKE_FEATURE.fz_dot*/
  2195.  
  2196.  
  2197. T6 r255is_a(T255* C,T0* a1){
  2198. T6 R=0;
  2199. T0* _tlf=NULL;
  2200. /*[IF*/
  2201. if(X54is_like_feature(a1)){
  2202. _tlf=a1;
  2203. if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
  2204. case 255: 
  2205. break;
  2206. default:
  2207. _tlf=NULL;
  2208. };/*[IF*/
  2209. if((X83to_string((C)->_like_what/*8*/))==((void*)(X83to_string((((T255*)_tlf))->_like_what/*8*/)))){
  2210. R=1;
  2211. }
  2212. else{
  2213. R=X54is_a((C)->_run_type/*16*/,a1);
  2214. }
  2215. /*FI]*/
  2216. }
  2217. else{
  2218. R=X54is_a((C)->_run_type/*16*/,a1);
  2219. }
  2220. /*FI]*/
  2221. /*[IF*/
  2222. if(!(R)){
  2223. r21add_position((C)->_start_position/*4*/);
  2224. }
  2225. /*FI]*/
  2226. return R;
  2227. }
  2228. /*No:TYPE_LIKE_FEATURE.written_mark*/
  2229.  
  2230.  
  2231. void r255c_initialize(T255* C){
  2232. X54c_initialize((C)->_run_type/*16*/);
  2233. }
  2234.  
  2235.  
  2236. T6 r255is_character(T255* C){
  2237. T6 R=0;
  2238. R=X54is_character((C)->_run_type/*16*/);
  2239. return R;
  2240. }
  2241.  
  2242.  
  2243. void r255make(T255* C,T0* a1,T0* a2){
  2244. C->_start_position=a1;
  2245. C->_like_what=a2;
  2246. r7copy((T7*)(((T0*)ms256_87371)),((T0*)ms13_1724));
  2247. r7extend((T7*)(((T0*)ms256_87371)),'\40');
  2248. X83declaration_in((C)->_like_what/*8*/,((T0*)ms256_87371));
  2249. C->_written_mark=r84item(((T0*)ms256_87371));
  2250. }
  2251.  
  2252.  
  2253. void r255demangling_in(T255* C,T0* a1){
  2254. /*[IF*/
  2255. if(r255is_reference(C)){
  2256. r7extend(((T7*)a1),'R');
  2257. }
  2258. else{
  2259. r7extend(((T7*)a1),'E');
  2260. }
  2261. /*FI]*/
  2262. r7extend(((T7*)a1),'\40');
  2263. r7append(((T7*)a1),r255run_time_mark(C));
  2264. }
  2265.  
  2266.  
  2267. void r255fatal_error_generic_list(T255* C){
  2268. r21add_type((T0*)C,((T0*)ms54_29184));
  2269. r21print_as_fatal_error((T21*)(oBC12eh));
  2270. }
  2271.  
  2272.  
  2273. T6 r255is_array(T255* C){
  2274. T6 R=0;
  2275. R=X54is_array((C)->_run_type/*16*/);
  2276. return R;
  2277. }
  2278.  
  2279.  
  2280. T6 r255is_dummy_expanded(T255* C){
  2281. T6 R=0;
  2282. R=X54is_dummy_expanded((C)->_run_type/*16*/);
  2283. return R;
  2284. }
  2285.  
  2286.  
  2287. T2 r255space_for_variable(T255* C){
  2288. T2 R=0;
  2289. R=X54space_for_variable((C)->_run_type/*16*/);
  2290. return R;
  2291. }
  2292.  
  2293.  
  2294. void r255to_expanded(T255* C){
  2295. X54to_expanded((C)->_run_type/*16*/);
  2296. }
  2297.  
  2298.  
  2299. T0* r255generic_list(T255* C){
  2300. T0* R=NULL;
  2301. /*[IF*/
  2302. if(r255is_generic(C)){
  2303. R=X54generic_list((C)->_run_type/*16*/);
  2304. }
  2305. else{
  2306. r255fatal_error_generic_list(C);
  2307. }
  2308. /*FI]*/
  2309. return R;
  2310. }
  2311.  
  2312.  
  2313. T0* r255base_class(T255* C){
  2314. T0* R=NULL;
  2315. T0* _bcn=NULL;
  2316. _bcn=r255base_class_name(C);
  2317. /*[IF*/
  2318. if((_bcn)!=((void*)(NULL))){
  2319. R=r64base_class(((T64*)_bcn));
  2320. }
  2321. else{
  2322. /*[IRF3.6append*/{T0* b1=((T0*)ms54_37098);
  2323. r7append((T7*)(oBC21explanation),b1);
  2324. }/*]*/
  2325. r21add_type((T0*)C,((T0*)ms13_47));
  2326. r21print_as_fatal_error((T21*)(oBC12eh));
  2327. }
  2328. /*FI]*/
  2329. return R;
  2330. }
  2331.  
  2332.  
  2333. void r255cast_to_ref(T255* C){
  2334. X54cast_to_ref((C)->_run_type/*16*/);
  2335. }
  2336.  
  2337.  
  2338. T0* r255base_class_name(T255* C){
  2339. T0* R=NULL;
  2340. R=X54base_class_name((C)->_run_type/*16*/);
  2341. return R;
  2342. }
  2343. /*No:TYPE_LIKE_FEATURE.is_formal_generic*/
  2344.  
  2345.  
  2346. T6 r255is_a_in(T255* C,T0* a1,T0* a2){
  2347. T6 R=0;
  2348. T0* _ct=NULL;
  2349. T0* _t2=NULL;
  2350. T0* _t1=NULL;
  2351. /*[IF*/
  2352. if(((C)->_written_mark/*12*/)==((void*)(X54written_mark(a1)))){
  2353. R=1;
  2354. }
  2355. else{
  2356. _ct=(((T24*)a2))->_current_type/*0*/;
  2357. _t1=r255to_runnable(C,_ct);
  2358. _t2=X54to_runnable(a1,_ct);
  2359. /*[IF*/
  2360. if((X54run_time_mark(_t1))==((void*)(X54run_time_mark(_t2)))){
  2361. R=1;
  2362. }
  2363. else{
  2364. R=X54is_a(_t1,_t2);
  2365. }
  2366. /*FI]*/
  2367. }
  2368. /*FI]*/
  2369. return R;
  2370. }
  2371.  
  2372.  
  2373. T0* r255look_up_for(T255* C,T0* a1,T0* a2){
  2374. T0* R=NULL;
  2375. R=r63look_up_for((T63*)(r255base_class(C)),a1,a2);
  2376. return R;
  2377. }
  2378.  
  2379.  
  2380. void r255c_type_for_external_in(T255* C,T0* a1){
  2381. /*[IF*/
  2382. if(r255is_reference(C)){
  2383. r7append(((T7*)a1),((T0*)ms13_1776a));
  2384. r7extend(((T7*)a1),'\52');
  2385. }
  2386. else{
  2387. r255c_type_for_result_in(C,a1);
  2388. }
  2389. /*FI]*/
  2390. }
  2391.  
  2392.  
  2393. void r255c_type_for_argument_in(T255* C,T0* a1){
  2394. X54c_type_for_argument_in((C)->_run_type/*16*/,a1);
  2395. }
  2396.  
  2397.  
  2398. void r255c_header_pass1(T255* C){
  2399. X54c_header_pass1((C)->_run_type/*16*/);
  2400. }
  2401. /*No:TYPE_LIKE_FEATURE.run_type*/
  2402.  
  2403.  
  2404. void r255c_type_for_target_in(T255* C,T0* a1){
  2405. X54c_type_for_target_in((C)->_run_type/*16*/,a1);
  2406. }
  2407.  
  2408.  
  2409. void r255c_type_for_result_in(T255* C,T0* a1){
  2410. X54c_type_for_result_in((C)->_run_type/*16*/,a1);
  2411. }
  2412.  
  2413.  
  2414. T0* r255expanded_initializer(T255* C){
  2415. T0* R=NULL;
  2416. R=X54expanded_initializer((C)->_run_type/*16*/);
  2417. return R;
  2418. }
  2419. /*No:TYPE_LIKE_FEATURE.fz_cad*/
  2420.  
  2421.  
  2422. void r255c_frame_descriptor(T255* C){
  2423. r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
  2424. /*[IF*/
  2425. if(r255is_reference(C)){
  2426. r7extend((T7*)(oBC12c_frame_descriptor_format),'R');
  2427. }
  2428. else{
  2429. r7extend((T7*)(oBC12c_frame_descriptor_format),'E');
  2430. }
  2431. /*FI]*/
  2432. r2append_in(r255id(C),oBC12c_frame_descriptor_format);
  2433. r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
  2434. }
  2435.  
  2436.  
  2437. T6 r255has_creation(T255* C,T0* a1){
  2438. T6 R=0;
  2439. R=X54has_creation((C)->_run_type/*16*/,a1);
  2440. return R;
  2441. }
  2442.  
  2443.  
  2444. void r255c_header_pass3(T255* C){
  2445. X54c_header_pass3((C)->_run_type/*16*/);
  2446. }
  2447.  
  2448.  
  2449. void r255gc_call_new_in(T255* C,T0* a1){
  2450. r7append(((T7*)a1),((T0*)ms13_1008));
  2451. r2append_in(r255id(C),a1);
  2452. r7extend(((T7*)a1),'\50');
  2453. r7extend(((T7*)a1),'\51');
  2454. }
  2455. /*No:TYPE_LIKE_FEATURE.fz_new*/
  2456.  
  2457.